#ifndef __THTTPD_H__
#define __THTTPD_H__

#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <stdlib.h>
#include <assert.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/sendfile.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <pthread.h>
#include <fcntl.h>
#include <unistd.h>
#include <syslog.h>
#include <modbus.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <errno.h>
#include <sys/msg.h>
#include "shmem.h"

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "msg_queue_peer.h"
#include <sys/types.h>

#define NORMAL 0
#define WRONING 1
#define FATAL 2
#define SIZE 4096
#define HTML_SIZE (64 * KB)


union val_t {
    int b_val;   //bool存储空间
    int i_val;   //整形存储空间
    float f_val; //浮点型存储空间
};
//消息队列
struct msgbuf
{
    long type; //必须有，表示消息的类型，赋值必须大于0
    int key;   //正文随意设置
    union val_t val;
};
//共享内存
struct std_node
{
    int key;             //唯一键值
    int type;            //数据点类型
    int dev_type;        //数据点属于哪个设备,根据网关支持的设备自行定义  char name[128];  //数据点名称
    union val_t old_val; //变化上报后需要更新旧值
    union val_t new_val; //从共享内存取出最新数据,放到new_val中
    int ret;             //默认为-1.采集成功后设置为0,采集失败后设置为-1
    // int addr; 自己定义
};
int init_server(int _port);
int handler_msg(int sock);

#endif
